const db = require('../db/index')

exports.getSubject = (req, res) => {
    const sql = 'select * from subject'
    db.query(sql, (err, results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取科目成功！',
            data: results
        })
    })
}

// 获取科目详细信息
exports.getAllSubject = (req, res) => {
    const sql = 'select c.id,c.name,c.kcms,c.kcmb,c.kcsc,t.username from subject c left join teacher t ON c.name = t.job'
    db.query(sql, (err, results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取成功！',
            data: results
        })
    })
}

// 新增科目
exports.addSubject = (req, res) => {
    // 定义插入课程表的sql语句
    const sql = 'insert into subject set ?'
    db.query(sql, req.body, (err, results) => {
        // 如果失败，返回异常，防止系统终止运行
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('新增数据失败')
        res.cc('新增数据成功', 0)
    })
}

// 修改课程信息
exports.updateSubject = (req, res) => {
    // 通过课程编号查找对应的课程进行修改操作
    const sql = 'update subject set ? where id=?'
    // 将前端返的数据作为sql语句的一部分
    db.query(sql, [req.body, req.body.id], (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('修改课程信息失败！')
        res.cc('修改课程信息成功！', 0)
    })
}

// 删除课程信息
exports.delSubject = (req, res) => {
    let jobName = ''
    const sql2 = 'select name from subject where id=?'
    db.query(sql2, req.body.id, (err, results) => {
        if (err) return res.cc(err)
        console.log(results[0].name)
        jobName = results[0].name

        // 修改teacher中的job
        const sql3 = `update teacher set job=null where job=?`
        db.query(sql3, jobName, (err, results) => {
            if (err) return res.cc(err)

            // 通过课程编号查找对应的课程进行删除操作
            const sql = 'delete from subject where id=?'
            db.query(sql, req.body.id, (err, results) => {
                if (err) return res.cc(err)
                if (results.affectedRows !== 1) return res.cc('删除课程失败！')
                res.cc('删除课程成功！', 0)
            })
        })
    })
}